package srting;

/**
 * java .lang.StringBuilder
 * java为了解决修改字符串的性能问题专门提供的字符串修改API
 *
 * StringBuilder内部维护一个可变char数组,并且提供了便于修改字符串的相关方法:
 * 增删改查等常见操作
 *
 *StringBuilder修改字符串的性能好，开销小。
 */

public class StringBuilderDemo1 {
    public static void main(String[] args) {
        String str ="好好学习java";
        //默认无参构造器创建时,StringBuilder内部表达一个空字符串:" "
        //StringBuilder builder=new StringBuilder();
        //基于一个字符串StringBuilder,会给定字符串内容复制一份到StringBuilder中
        //StringBuilder builder=new StringBuilder(str);
        /*
        StringBuffer是与String一同在JDK1.0出现的
        StringBuilder是在JDK1.5是出现的
        功能一致,但是StringBuffer是并发安全的,StringBuilder则不是;
         */
        StringBuffer builder=new StringBuffer(str);
        System.out.println("str:"+str);
        System.out.println("builder:"+builder);
        /*
        append():将给定内容追加字符串末尾.等同于字符串的"+"操作
        好好学习java
           v  追加
        好好学习java,为了找个好工作!
         */
        builder.append(",为了找个好工作!");
        System.out.println("builder:"+builder);
        /*
        replace(int start ,int end String str)
        将给定内容替换到当前字符串中的部分位置(范围start-end含头不含尾)
        好好学习java,为了找个好工作!
                  v替换部分内容(改)
        好好学习java,就是为了改变世界!
         */
        builder.replace(9,16,"就是为了改变世界");
        System.out.println("builder:"+builder);
        /*
        delete(int start,int end)
        将指定范围分字符串删除(两个参数为范围,含头不含尾)
        好好学习java,就是为了改变世界!
                    v 删除
        ,就是为了改变世界!

         */
        builder.delete(0,8);
        System.out.println("builder:"+builder);
        /*
        insert(int offset ,Srting str)
        将指定的字符串添加到指定位置
        ,就是为了改变世界!
              v
         活着,就是为了改变世界!
         */
        builder.insert(0,"活着");
        System.out.println("builder:"+builder);

        //翻转   reverse();
        builder.reverse();//翻转字符串
        System.out.println("builder:"+builder);

        /*
        String toString()
        将StringBuilder内部修改后的字符串内容以String的形式返回
         */
        String str2=builder.toString();
        System.out.println("ser2:"+str2);




    }
}
